// __App__.controller('MyController',
//   ['$scope', 'notify', function ($scope, notify) {
//   $scope.callNotify = function (msg) {
//     notify(msg);
//   };
// }])
/**
 * @typedef {{(msg: string): void}} NotifyFunc
 */
export class ServiceExampleCtrl {
  static $inject = ["$scope", "notify"];

  /**
   * @param {ng.IScope} $scope
   * @param {NotifyFunc} notify
   */
  constructor($scope, notify) {
    /**
     * @type {NotifyFunc} callNotify
     */
    this.callNotify =
      /**
       * @param {string} msg
       */
      (msg) => {
        notify(msg);
      };
  }
}
/**
 * @param {ng.IWindowService} $window
 * @returns {NotifyFunc}
 */
export function NotifyServiceFactory($window) {
  /**
   * @type {string[]}
   */
  let msgs = [];

  return (msg) => {
    msgs.push(msg);
    if (msgs.length === 3) {
      $window.alert(msgs.join("\n"));
      msgs = /** @type {string[]} */ ([]);
    }
  };
}

NotifyServiceFactory.$inject = ["$window"];
// .factory('notify', ['$window', ]);
